package com.sapitest.utils.redis.commands;

import redis.clients.jedis.Jedis;

/**
 * @date 2019-01-13
 * @author Liuxu
 * @version 1.0.0
 * @since jdk1.8
 */
@Deprecated
public class RedisSortedSet {

    /**
     * SortedSet数据类型执行命令 zadd
     * @param jedis Jedis对象
     * @param key   键
     * @param var   成员值大小，double类型
     * @param member    成员名称
     * @return  执行结果
     */
    public String sszadd(Jedis jedis, String key, double var, String member){
        return String.valueOf(jedis.zadd(key, var, member));
    }

    /**
     * SortedSet数据类型执行命令 zcard
     * @param jedis Jedis对象
     * @param key   键
     * @return  执行结果
     */
    public String sszcard(Jedis jedis, String key){
        return String.valueOf(jedis.zcard(key));
    }

    /**
     * SortedSet数据类型执行命令 zcount
     * @param jedis Jedis对象
     * @param key   键
     * @param min   最小值
     * @param max   最大值
     * @return  执行结果
     */
    public String sszcount(Jedis jedis, String key, double min, double max){
        return String.valueOf(jedis.zcount(key, min, max));
    }

    /**
     * SortedSet数据类型执行命令 zrange；成员的位置按 score 值递增(从小到大)来排列
     * @param jedis Jedis对象
     * @param key   键
     * @param start 开始值
     * @param end   结束值
     * @return  执行结果
     */
    public String sszrange(Jedis jedis, String key, long start, long end){
        return String.valueOf(jedis.zrange(key, start, end));
    }

    /**
     * SortedSet数据类型执行命令 zrangeByScore
     * @param jedis Jedis对象
     * @param key   键
     * @param minScope  最小值
     * @param maxScope  最大值
     * @return  执行结果
     */
    public String sszrangebyscope(Jedis jedis, String key, String minScope, String maxScope){
        return String.valueOf(jedis.zrangeByScore(key, minScope, maxScope));
    }

    /**
     * SortedSet数据类型执行命令 zrank；从小到大排序，最小的排第一(0)
     * @param jedis Jedis对象
     * @param key   键
     * @param member    成员名称
     * @return  执行结果
     */
    public String sszrank(Jedis jedis, String key, String member){
        return String.valueOf(jedis.zrank(key, member));
    }

    /**
     * SortedSet数据类型执行命令 zrevrange；成员的位置按 score 值递减(从大到小)来排列
     * @param jedis Jedis对象
     * @param key   键
     * @param start 开始值
     * @param end   结束值
     * @return  执行结果
     */
    public String sszrevrange(Jedis jedis, String key, long start, long end){
        return String.valueOf(jedis.zrevrange(key, start, end));
    }

    /**
     * SortedSet数据类型执行命令 zrevrangeByScore
     * @param jedis Jedis对象
     * @param key   键
     * @param minScope  最小值
     * @param maxScope  最大值
     * @return  执行结果
     */
    public String sszrevrangebyscope(Jedis jedis, String key, String maxScope, String minScope){
        return String.valueOf(jedis.zrevrangeByScore(key, maxScope, minScope));
    }

    /**
     * SortedSet数据类型执行命令 zrevrank，从大到小排序，最大的排第一(0)
     * @param jedis Jedis对象
     * @param key   键
     * @param member  成员名称
     * @return  执行结果
     */
    public String sszrevrank(Jedis jedis, String key, String member){
        return String.valueOf(jedis.zrevrank(key, member));
    }

    /**
     * SortedSet数据类型执行命令 zscore
     * @param jedis Jedis对象
     * @param key   键
     * @param member  成员名称
     * @return  执行结果
     */
    public String sszscope(Jedis jedis, String key, String member){
        return String.valueOf(jedis.zscore(key, member));
    }
}
